const fs = require('fs')
const path = require('path')
const url = path.join(__dirname, './data.json')
function getDate() {
      fs.readFile(url, 'utf8', (err, data) => {
            if (err) {
                  return console.log(err.message);
            }
            let obj = JSON.parse(data)
            console.log(obj)
      })
}
// 测试获取数据

// 添加数据 - 数据以参数的形式传递给方法;(传递什么，添加什么)
function addData(obj) {
      // 1.获取信息
      fs.readFile(url, 'utf8', (err, data) => {
            // 判断
            if (err) return console.log(err.message);
            let arr = JSON.parse(data);
            // 2.操作 - 把一个图书信息对象，添加到数组中
            // 添加对象之前，生成id；(最后一项元素的id+1做新的id)
            obj.id = arr[arr.length - 1].id + 1;
            arr.push(obj);
            // 3.写入
            fs.writeFile(url, JSON.stringify(arr), err => {
                  // 判断
                  if (err) return console.log(err.message);
                  // 提示成功
                  console.log('恭喜您，添加图书成功！');
            })
      })
}
// 测试添加 - id的值，不是调用方法的时候定义的;
// addData({
//       author: '刘慈欣',
//       bookname: '三体2-死神永生',
//       publisher: '武汉人民出版社'
// })
function delData(id) {
      fs.readFile(url, 'utf8', (err, data) => {
            if (err) return console.log(err.message)
            const arr = JSON.parse(data)
            const newArr = arr.filter(ele => id !== ele.id)
            fs.writeFile(url, JSON.stringify(newArr), err => {
                  if (err) return console.log(err.message)
                  console.log('恭喜您，删除数据成功');
            })
      })

}
// delData(1)
// 注意新增跟删除不可以同时操作
function updateData(obj) {
      fs.readFile(url, 'utf8', (err, data) => {
            if (err) return console.log(err.message)
            const arr = JSON.parse(data)
            const index = arr.findIndex(ele => obj.id == ele.id)
            arr.splice(index, 1, obj)
            fs.writeFile(url, JSON.stringify(arr), err => {
                  if (err) return console.log(err.message)
                  console.log('恭喜您，修改成功');
            })
      })

}
// 测试修改
updateData({
      "id": 7,
      "author": "曹雪芹",
      "bookname": "红楼梦",
      "publisher": "北京人民出版社"
})